package dziennik.classes;
import dziennik.classes.*;

import java.io.Serializable;
import java.util.ArrayList;

/**
 * 
 * <p>
 * Klasa przedmiot obrazuje przedmioty.Zawiera listy ocen i obecnosci.
 * </p>
 * 
 * @author Lukasz Nowak
 *
 */

public class Przedmiot implements Serializable{
	private ArrayList<Ocena> oceny;
	private ArrayList<Obecnosc> obecnosci;
	private String nazwa;
	
	private static ArrayList<Przedmiot> lista_przedmiotow = generuj_liste_przedmiotow();
	
	public static int ilosc_przedmiotow = lista_przedmiotow.size();

	public Przedmiot(ArrayList<Ocena> oceny, ArrayList<Obecnosc> obecnosci, String nazwa)
	{
		this.oceny = oceny;
		this.obecnosci = obecnosci;
		this.nazwa = nazwa;
	}
	
	public Przedmiot(){
		
	}

	public ArrayList<Ocena> getOceny(){return this.oceny;}
	public ArrayList<Obecnosc> getObecnosci(){return this.obecnosci;}
	public String getNazwa(){return this.nazwa;}

	public void setOceny(ArrayList<Ocena> lista){this.oceny=lista;}
	public void setObecnosci(ArrayList<Obecnosc> lista){this.obecnosci=lista;}
	public void setNazwa(String text){this.nazwa=text;}
	/**
	 * 
	 * <p>
	 * Metoda generujaca liste przedmiotow
	 * </p>
	 *
	 */
	public static ArrayList<Przedmiot> generuj_liste_przedmiotow(){
		ArrayList<Przedmiot> lista = new ArrayList();
		lista.add(new Przedmiot(null,null,"Język polski"));
		lista.add(new Przedmiot(null,null,"Matematyka"));
		lista.add(new Przedmiot(null,null,"Fizyka"));
		lista.add(new Przedmiot(null,null,"Chemia"));
		lista.add(new Przedmiot(null,null,"Technika"));
		lista.add(new Przedmiot(null,null,"Biologia"));
		lista.add(new Przedmiot(null,null,"Geografia"));
		lista.add(new Przedmiot(null,null,"Wiedza o społeczeństwie"));
		lista.add(new Przedmiot(null,null,"Historia"));
		lista.add(new Przedmiot(null,null,"Informatyka"));
		lista.add(new Przedmiot(null,null,"Sztuka"));
		lista.add(new Przedmiot(null,null,"Wychowanie do ż.w.r."));
		lista.add(new Przedmiot(null,null,"Wychowanie fizyczne"));
		lista.add(new Przedmiot(null,null,"Język Angielski"));
		lista.add(new Przedmiot(null,null,"Język Niemiecki"));
		lista.add(new Przedmiot(null,null,"Religia"));
		return lista;
	}
	/**
	 * 
	 * <p>
	 * Metoda zwracajaca id przedmiotu
	 * </p>
	 *
	 *@params String name
	 */
	public static int index_przedmiotu(String name){
		int i;
		for (i=0;i<lista_przedmiotow.size();i++){
			if (lista_przedmiotow.get(i).nazwa.equals(name)) break;
		}

		return i;
	}
	
	/**
	 * 
	 * <p>
	 * Metoda zwracajaca nazwe przedmiotu
	 * </p>
	 *
	 *@params int numer
	 */
	public static String nazwa_przedmiotu(int numer){
		 return Przedmiot.lista_przedmiotow.get(numer).getNazwa();
	}
	/**
	 * 
	 * <p>
	 * Metoda generujaca nowa liste przedmiotow
	 * </p>
	 * 
	 */
	public static ArrayList<Przedmiot> nowa_lista_przedmiotow(){
		ArrayList<Przedmiot> lista = new ArrayList<Przedmiot>();
		for (int i=0;i<ilosc_przedmiotow;i++){
			lista.add(new Przedmiot(
					new ArrayList<Ocena>(),
					new ArrayList<Obecnosc>(),
					nazwa_przedmiotu(i)
					));
		}
		return lista;
	}
		
}
